// Copyright 2022 a.o.smith ALL Rights Reserved
package com.liuxinlong.modules.mapper.qad;

import com.liuxinlong.modules.out.dto.BomDataDto;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 类描述
 * <p>
 * 此类关联设计的功能
 *
 * @author liuxinlong@hotwater.com.cn
 * @version 1.0.0
 * @since 2023年6月29日
 */
public interface QadValidMaterialMapper {

    /**
     * 查询物料列表
     *
     * @param materialNoList 物料号
     * @param region         作用域
     * @return 物料列表
     */
    List<BomDataDto> pageChildList(@Param("list") List<String> materialNoList, @Param("region") String region);

    /**
     * 查询子物料条数
     *
     * @param materialNoList 物料号
     * @param region         作用域
     * @return 子物料条数
     */
    @MapKey("material")
    Map<String,Map<String,Object>> getChildCount(@Param("list") List<String> materialNoList, @Param("region") String region);

    /**
     * 查询父物料
     *
     * @param materialNoList 物料号
     * @param region         作用域
     * @return 父物料列表
     */
    List<Map<String, Object>> pageParentList(@Param("list") List<String> materialNoList, @Param("region") String region);

    /**
     * 查询父物料条数
     *
     * @param materialNoList 物料号
     * @param region         作用域
     * @return 父物料条数
     */
    @MapKey("material")
    Map<String,Map<String,Object>> getParentCount(@Param("list") List<String> materialNoList, @Param("region") String region);

    /**
     * 查询物料列表
     *
     * @param materialNoList 物料号
     * @param region         作用域
     * @return 物料列表
     */
    List<Map<String, Object>> pageMaterialList(@Param("list") List<String> materialNoList, @Param("region") String region);
}
